Storage virtualization technology allows for the separation of logical storage from physical storage. One exemplary use case for storage virtualization is within a virtual machine. A layer of virtualizing software (typically called a hypervisor or virtual machine monitor) is installed on a computer system and controls how virtual machines interact with the physical hardware. Since guest operating systems are typically coded to exercise exclusive control over the physical hardware, the virtualizing software can be configured to subdivide resources of the physical hardware and emulate the presence of physical hardware within the virtual machines. Another use case for storage virtualization is within a computer system configured to implement a storage array. In this case, physical computer systems or virtual machines can be connected to the storage array using the iSCSI protocol, or the like.
A storage handling module can be used to emulate storage for either a virtual or physical machine. For example, a storage handling module can handle storage IO jobs issued by a virtual or physical machine by reading and writing to one or more virtual disk files, which can be used to describe, i.e., store, the extents of the virtual disk, i.e., a contiguous area of storage such as a block. Likewise, the storage handling program can respond to write requests by writing bit patterns data for the virtual disk to one or more virtual disk files and respond to read requests by reading the bit patterns stored in the one or more virtual disk files.